#include <iostream>
#include <unordered_map>
#include <stack>
using namespace std;

int main() {

    int n;
    cin>>n;
    string str;
    unordered_map<char,char> has;
    has[']']='[',has[')']='(',has['}']='{';
    while(n--){
        cin>>str;
        stack<char> st;
        bool flg=true;
        for(int i=0;i<str.size() && flg;++i){
			if(has.count(str[i])){
				if(st.empty() || st.top()!=has[str[i]]){
					flg=false;
				}
				else{
					st.pop();
				}
			}
			else{
				st.push(str[i]);
			}
		}
		if(flg){
			cout<<"yes"<<endl;
		}
		else{
			cout<<"no"<<endl;
		}
        
    }
    
    return 0;
}
